﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Loja.Banco;
using Loja.Controles.Aplicação;
using Loja.Aplicação;
using System.Collections;
using Loja.Padrao;

namespace Loja.Telas
{
    public partial class ConsultaCadastro : PadraoConsulta
    {
        private Controle controle;

        public String cliente;

        public ConsultaCadastro(Controle controle, Boolean desabilita)
        {
            this.controle = controle;
            InitializeComponent();
            if (desabilita)
                btEscolher.Enabled = true;
            else
                btEscolher.Enabled = false;
            cbTipoCadastro.Enabled = false;
        }

        public void ListaTipoCadastro()
        {
            cbTipoCadastro.DataSource = controle.BuscaTipoCadastroAtivos();
        }

        new private void btnNovo_Click(object sender, EventArgs e)
        {
            FormCadastro form = new FormCadastro(controle, new Cadastro());
            form.ShowDialog(this);
            Pesquisar();
        }

        private void btnPesquisar_Click(object sender, EventArgs e)
        {
            Pesquisar();                      
        }

        private void btEscolher_Click(object sender, EventArgs e)
        {
            try
            {
                if (dgDados.CurrentRow.Cells["Cadastro_ID"].Value.ToString() != "")
                {
                    cliente = dgDados.CurrentRow.Cells["Cadastro_ID"].Value.ToString();
                    this.Close();
                }
            }
            catch             
            {
                MessageBox.Show("Não foi possivel escolher o cadastro!");
            }
        }

        private void btnAbrir_Click(object sender, EventArgs e)
        {
            Abrir();
        }

        private void Pesquisar()
        {
            if (txtDescricao.Text != "")
            {
                if (cxTipo.Checked == false)
                {
                    var cadastros = controle.BuscaCliente(txtDescricao.Text);

                    if (cadastros == null)
                    {

                        dgDados.DataSource = null;

                    }
                    else
                    {
                        dgDados.DataSource = cadastros;
                    }
                }
                else
                {
                    var cadastros = controle.BuscaClienteTipoCadastro(txtDescricao.Text, cbTipoCadastro.SelectedItem);

                    if (cadastros == null)
                    {

                        dgDados.DataSource = null;

                    }
                    else
                    {
                        dgDados.DataSource = cadastros;
                    }
                }
            }
            else
            {
                if (cxTipo.Checked == false)
                {
                    var cadastros = controle.BuscaCliente();
                    dgDados.DataSource = cadastros;
                }
                else
                {
                    var cadastros = controle.BuscaClienteTipoCadastro(cbTipoCadastro.SelectedItem);
                    dgDados.DataSource = cadastros;   
                }
            }  
        }

        private void btnExcluir_Click(object sender, EventArgs e)
        {                        
            DialogResult dialogo = new DialogResult();
            dialogo = MessageBox.Show("Deseja EXCLUIR o CADASTRO?", "Excluir Cadastro", MessageBoxButtons.YesNo);
            if (dialogo.ToString() == "Yes")
            {
                if (controle.DesativarCadastro(dgDados.Rows[dgDados.CurrentRow.Index].DataBoundItem))
                {
                    MessageBox.Show("Cadastro excluido com sucesso!");
                    Pesquisar();
                }
                else
                    MessageBox.Show("Problema ao excluir cadastro!");
            }
        
        }

        private void cxTipo_Click(object sender, EventArgs e)
        {
            if (cbTipoCadastro.Enabled == true)
            {
                cbTipoCadastro.Enabled = false;
                cbTipoCadastro.DataSource = null;
            }
            else
            {                
                cbTipoCadastro.Enabled = true;
                ListaTipoCadastro();
            }
        }

        public void Abrir()
        {
            try
            {
                FormCadastro c = new FormCadastro(controle, dgDados.Rows[dgDados.CurrentRow.Index].DataBoundItem);
                c.ShowDialog(this);
                Pesquisar();
            }
            catch
            {
                MessageBox.Show("Não foi encontrado cadastro(s) para essa consulta!");
            }
        }
    }
}
